package edu.API基础String.StringBuilder;

public class StringBuilder效率原理 {
    public static void main(String[] args) {
        String s1="a";
        String s2=s1+"b";
        //在执行+操作时系统会在堆内存自动创建new StringBuilder()对象，
        //然后执行append方法拼接，此时得到的时StringBuilder类型的，还要执行toString操作
        //才能把返回值地址交到栈中，再次遇到+号还会自动重新创建新的StringBuilder对象操作，浪费
        //字符串的+号拼接，每一个加号在堆内存当中都有2个对象
        //learn->StringBuilder原理1.png

        StringBuilder sb3=new StringBuilder();
        sb3.append(1);
        sb3.append(2);
        sb3.append(3);
        //无论多少次+号拼接，只会在堆内存中有一个StringBuilder对象
        //learn->StringBuilder原理2.png

      /*  String 与 StringBuilder 区别；
            String内容不可变，StringBuilder内容可以改变

      */

    }
}
